\section{Sujet}
La bibliothèque OpenGL est constituée d’un ensemble de fonctions permettant d’accéder aux fonctionnalités 3D des cartes graphiques. 
Ces fonctions sont nombreuses (déclaration de formes, textures, lumières, shaders, etc) et possèdent beacoup arguments, ce qui rend l'utilisation d'OpenGL difficile. 
Par exemple pour un simple cube, il faut environ 26 lignes de code sans compter la gestion du repère ou l'on se trouve. L’objectif de ce projet est de simplifier la 
programmation OpenGL en introduisant une sur-couche objet qui doit être la plus simple possible et permettant d’exploiter les dernières possibilités des cartes 
graphiques. De plus la sur-couche objet ne devra pas nuire au performance par rapport à une implémentation OpenGL classique. 

\section{La Portabilité OpenGL ES}
Cette version d'OpenGL est faite pour les plateformes embarquées comme les systèmes android, iOS, Symbian. La librairie OpenGL ES est une version d'openGl dont 
le besoin de puissance a été considérablement réduite car la puissance des plateformes qui utilisent cette version d'OpenGL sont trés peu puissantes. 
Il y a eu plusieurs versions d'OpenGl ES. la première est OpenGL ES 1.0 qui est dérivée d'OpenGL 1.3. Il s'agit en fait d'une spécification de moteur de rendu 3D 
logiciel multiplate-forme. Ensuite il y a eu une version 1.1 qui est dérivée d'OpenGL 1.5. Cette version a été réalisée pour s'adapter à l'arriver de nouveau matériels
des mobiles qui sont plus puissant. Enfin il y a la version 2.0 qui est dérivée d'OpenGL 2.0. Cette version est arrivée peu avant les prototypes de processeurs 
embarqués haut de gamme. Elle s'allège de la plupart de ses fonctions précédentes dont toute son API de rendu à pipeline fixe pour laisser la place à un système 
de shaders basé sur une variation de GLSL.
Mais nous n'avons pas gérés la portabilité en OpenGL ES par manque de temps.
De plus la difficulté avec cette version d'OpenGL est que toutes les plate-formes sont dites compatible avec GLES 
mais pour beaucoup d'entre elles, cela ne fonctionne pas. D'ou la difficulté de pouvoir tester le bon fonctionnement de ce nous aurions pu faire. 
